Systems and Methods for Adaptive Communication Control Using A Profile

ABSTRACT

Computer program products, apparatus, and methods for processing digital messages to recipients at destination domains are provided. A plurality of profiles are established, each profile for handling digital to a specific domain or set of domains. A request to process a plurality of outbound digital messages is handled by, for each given digital message, processing the given digital message by (i) determining a destination domain for digital messages, (ii) reading a profile for the determined destination domain for the digital messages and (iii) based on at least one parameter set in the profile: (a) sending the given digital message to the determined destination domain in accordance with the profile when permitted by the at least one parameter set in the profile, or (b) not sending the digital message to the determined destination domain when required by the at least one parameter set in the profile.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.13/767,858 filed Feb. 14, 2013 which is a continuation of U.S.application Ser. No. 13/460,698, filed Apr. 30, 2012, now U.S. Pat. No.8,386,638, which is a continuation of U.S. application Ser. No.12/758,797, filed on Apr. 12, 2010, now U.S. Pat. No. 8,171,159, whichis a continuation of application Ser. No. 11/975,884 filed on Oct. 22,2007, now U.S. Pat. No. 7,698,462, each of which is hereby incorporatedby reference in their entirety for all purposes.

1. FIELD OF THE INVENTION

Systems and methods for controlling delivery of digital messages areprovided. More particularly, computer systems and methods forcustomizing digital message forwarding parameters, on a domain by domainbasis, are provided.

2. BACKGROUND OF THE INVENTION

Digital message (e.g., e-mail, text messages, etc.) is an essentialnetwork service. Many digital messaging systems that send digitalmessages over the Internet use protocols such as simple mail transferprotocol (SMTP), in the case of E-mail, and other protocols when thedigital message is other than e-mail, to send digital messages from oneserver to another. The messages can then be retrieved with a clientusing services such as post office protocol (POP) or Internet messageaccess protocol (IMAP). Other protocols for sending digital messagesthat are e-mails include, but are not limited to, POP3, X.400International Telecommunication Union standard (X.400), and the Novellmessage handling service (MHS), and extended simple mail transferprotocol (ESMTP). Specifically, X.400 defines a transfer protocol forsending electronic mail between mail servers and is used in Europe as analternative to SMTP. MHS, which was developed by Novell, is used forelectronic mail on Netware networks.

SMTP transports digital messages among different hosts within thetransmission control protocol/Internet protocol (TCP/IP) suite. UnderSMTP, a client SMTP process opens a TCP connection to a server SMTPprocess on a remote host and attempts to send mail across theconnection. The server SMTP listens for a TCP connection on a specificport, usually port 25, and the client SMTP process initiates aconnection on that port. When the TCP connection is successful, the twoprocesses execute a simple request-response dialogue, defined by theSMTP protocol (see RFC 821 STD 10, simple mail transfer protocol, August1982, for details), in which the client process transmits the mailaddresses of the originator and the recipient(s) for a message. When theserver process accepts these mail addresses, the client processtransmits the e-mail instant message. The e-mail message contains amessage header and message text (“body”) formatted in accordance withRFC 822 (RFC822 STD 11, Standard for the format of ARPA—Internet TextMessages, August 1982). Mail that arrives via SMTP is forwarded to aremote server or it is delivered to mailboxes on the local server. OnUNIX-based systems, Sendmail is a widely used SMTP server for e-mail.Sendmail includes a POP3 server and also comes in a version for WindowsNT. Microsoft Outlook is the most popular mail-agent program onWindow-based systems. Similar protocols are used when the digitalmessage is other than e-mail.

The SMTP model (RFC 821) supports both end-to-end (no intermediatemessage transfer agents “MTAs”) and store-and-forward mail deliverymethods. The end-to-end method is used between organizations, and thestore-and-forward method is chosen for operating within organizationsthat have TCP/IP and SMTP-based networks. A SMTP client will contact thedestination host's SMTP server directly to deliver the mail. It willkeep the mail item from being transmitted until it has been successfullycopied to the recipient's SMTP. This is different from thestore-and-forward principle that is common in many other electronicmailing systems, where the mail item may pass through a number ofintermediate hosts in the same network on its way to the destination andwhere successful transmission from the sender only indicates that themail item has reached the first intermediate hop. The RFC 821 standarddefines a client-server protocol. The client SMTP is the one whichinitiates the session (that is, the sending SMTP) and the server is theone that responds (the receiving SMTP) to the session request. Becausethe client SMTP frequently acts as a server for a user-mailing program,however, it is often simpler to refer to the client as the sender-SMTPand to the server as the receiver-SMTP. A SMTP-based process cantransfer electronic mail to another process on the same network or toanother network via a relay or gateway process accessible to bothnetworks. An e-mail message may pass through a number of intermediaterelay or gateway hosts on its path from a sender to a recipient.

A simple model of the components of the SMTP system is shown in FIG. 1.Systems that send digital messages other than e-mail have similarcomponents. Referring to FIG. 1, users deal with a user agent (UA).Popular user agents for UNIX include Berkeley Mail, Elm, MH, Pine, andMutt. The user agents for WINDOWS include MICROSOFT Outlook/OutlookExpress and Netscape/Mozilla Communicator. The exchange of e-mail using,for example TCP, is performed by an MTA. One MTA for UNIX systems isSendmail, and a conventional MTA for Windows is Microsoft ExchangeServer 2007. Users normally do not deal with the MTA. It is theresponsibility of the system administrator to set up the local MTA.Users often have a choice, however, for their user agent. The local MTAmaintains a mail queue so that it can schedule repeat delivery attemptsin case a remote server is unable. Also the local MTA delivers mail tomailboxes, and the information can be downloaded by the UA (see FIG. 1).The RFC 821 standard specifies the SMTP protocol, which is a mechanismof communication between two MTAs across a single TCP connection. TheRFC 822 standard specifies the format of the electronic mail messagethat is transmitted using the SMTP protocol (RFC 821) between the twoMTAs. As a result of a user mail request, the sender-SMTP establishes atwo-way connection with a receiver-SMTP. The receiver-SMTP can be eitherthe ultimate destination or an intermediate one (known as a mailgateway). The sender-SMTP will generate commands, which are replied toby the receiver-SMTP (see FIG. 1).

A typical e-mail delivery process is as follows. Delivery processes fordigital messages other than e-mail follow similar scenarios. In thefollowing scenario, Larry at terminal 102 sends e-mail to Martha at here-mail address: martha@example.org. Martha can review here e-mail atterminal 102. Martha's Internet Service Provider (ISP) uses mailtransfer agent MTA 106.

1. Larry composes the message and chooses send using mail user agent(MUA) 108. The e-mail message itself specifies one or more intendedrecipients (e.g., destination e-mail addresses), a subject heading, anda message body; optionally, the message may specify accompanyingattachments.

2. MUA 108 queries a DNS server (not shown) for the IP address of thelocal mail server running MTA 110. The DNS server translates the domainname into an IP address, e.g., 10.1.1.1, of the local mail server.

3. User agent 108 opens an SMTP connection to the local mail serverrunning MTA 110. The message is transmitted to the local mail serverusing the SMTP protocol. An MTA (also called a mail server, or a mailexchange server in the context of the Domain Name System) is a computerprogram or software agent that transfers electronic mail messages fromone computer to another. Webster's New World Computer Dictionary, tenthedition, Wiley Publishing Inc., Indianapolis, Ind., defines an MTA as ane-mail program that sends e-mail messages to another message transferagent. An MTA can handle large amounts of mail, can interact withdatabases in many formats, and has extensive knowledge of the many SMTPvariants in use. Examples of high-throughput MTA systems are disclosedin U.S. patent application Ser. No. 10/857,601, entitled “Email DeliverySystem Using Metadata,” filed May 27, 2004 as well as U.S. patentapplication Ser. No. 10/777,336, entitled “Email Using Queues inNon-persistent memory,” filed Feb. 11, 2004, each of which is herebyincorporated by reference in its entirety. One example of an MTA systemis the StrongMail MTA (Redwood Shores, Calif.). Conventional MTAprograms include, but are not limited to, Sendmail, qmail, Exim,Postfix, Microsoft Exchange Server, IMail (Ipswitch, Inc.), MDaemon(Alt-N Technologies), MailEnable, Merak Mail Server, and qmail.

4. MTA 110 queries a DNS server (not shown) for the MX record of thedestination domain, e.g., example.org. The DNS server returns ahostname, e.g., mail.example.org. MTA 110 queries a DNS server (notshown) for the A record of mail.example.org, e.g., the IP address. TheDNS server returns an IP address of, for example, 127.118.10.3. 5. MTA110 opens an SMTP connection to the remote mail server providing e-mailservice for example.org which is also running MTA 106. The message istransmitted to MTA 106 from MTA 110 using the SMTP protocol over a TCPconnection.

5. MTA 106 delivers Larry's message for Martha to the local deliveryagent 112. Local delivery agent 112 appends the message to Martha'smailbox. For example, the message may be stored in (e.g., using a samplefile path on a UNIX system): /var/spool/mail/martha.

6. Martha has her user agent 114 connect to her ISP. Martha's user agent114 opens a POP3 (Post Office Protocol version 3, defined in RFC1725)connection with the POP3 (incoming mail) server 112. User agent 114downloads Martha's new messages, including the message from Larry.

7. Martha reads Larry's message.

The MTA 110, which is responsible for queuing up messages and arrangingfor their distribution, is the workhorse component of electronic mailsystems. The MTA “listens” for incoming e-mail messages on the SMTPport, which is generally port 25. When an e-mail message is detected, ithandles the message according to configuration settings, that is, thesettings chosen by the system administrator, in accordance with relevantstandards such as Request for Comment documents (RFCs). Typically, themail server or MTA must temporarily store incoming and outgoing messagesin a queue, the “mail queue.” Actual queue size is highly dependent onone's system resources and daily volumes.

In some instances, referring to FIG. 2, communication between a sendinghost (client) and a receiving host (server), could involve relaying. Inaddition to one MTA at the sender site and one at the receiving site,other MTAs, acting as client or server, can relay the electronic mailacross the network. This scenario of communication between the senderand the receiver can be accomplished through the use of a digitalmessage gateway, which is a relay MTA that can receive digital messagesprepared by a protocol other than SMTP and transform it to the SMTPformat before sending it. The digital message gateway can also receivedigital messages in the SMTP format, change it to another format, andthen send it to the MTA of the client that does not use the TCP/IPprotocol suite. In various implementations, there is the capability toexchange mail between the TCP/IP SMTP mailing system and the locallyused mailing systems. These applications are called digital messagegateways or mail bridges. Sending digital messages (e.g., e-mail)through a digital message gateway may alter the end-to-end deliveryspecification, because SMTP will only guarantee delivery to themail-gateway host, not to the real destination host, which is locatedbeyond the TCP/IP network. When a digital message gateway is used, theSMTP end-to-end transmission is host-to-gateway, gateway-to-host orgateway-to-gateway; the behavior beyond the gateway is not defined bySMTP.

While functional, existing digital message sending systems, such asMTAs, are unsatisfactory. Digital messages (e.g., e-mail) sent to agiven domain (e.g., a particular ISP) or site may be blocked. However,typically, the blocking domain will either not specify why the digitalmessage was blocked or will provide incomplete information as to why themessage was blocked. In one example, the reason why a domain will blockincoming digital messages is that a digital message quota, where thequota is based for example on a number of allowed digital messages perunit of time (e.g., per day, per week, per month) from the sendingdomain has been exceeded. However, the conventional sending digitalmessaging sending system (e.g., MTA 110 of FIG. 1) does not learn that aquota has been exceeded from the message failure notices that arereturned to the sending MTA by the blocking domain. So the digitalmessage sending system continues to resend the blocked digital messagesand send any new additional digital messages (e.g., e-mail, textmessages, etc.) in its queue to the blocking domain even though there isno chance that the blocking domain will accept the resent digitalmessages or the new digital messages from the digital message sendingsystem because the quota has been exceeded. In another example, thereceiving domain may be down because of equipment failure or scheduledmaintenance. The digital message sending system may send digitalmessages to the receiving domain and meet with failure. But the digitalmessage sending system will continue to resend the digital message andany new digital message in its queue to the receiving domain on somepredetermined retry basis without intelligently backing off from itsefforts to send out the digital message to the domain that is down.

Given the above background, what is needed in the art are improvedsystems and methods for sending out digital message to domains using,for example, MTAs or other forms of digital message sending systems thatcommunicate digital messages to end users.

Discussion or citation of a reference herein will not be construed as anadmission that such reference is prior to the present invention.

3. SUMMARY OF THE INVENTION

The present invention addresses many of the shortcomings and drawbacksfound in the prior art. In the present invention, feedback loops areprovided in which the domains (or sites) to which digital messages(e.g., e-mail) are sent by a message transfer agent (MTA), or other formof digital message sending system that communicates digital messages toend-users, report back to the MTA or other form of digital messagesystem, providing domain level and/or site or client specific digitalmessage policy details. This information is used to build a profile foreach domain or set of domains (or site or set of sites) to which the MTAor other form of digital message sending system (e.g., server) sendsdigital messages. For example, prior to sending a digital messages to adomain or particular site, the MTA or other form of digital messagesending system consults the profile associated with the domain or site,or the set of domains or sites that includes the domain or site, toensure that the MTA or other form of digital message sending systemsends the digital message to the domain or site in a manner that iscompliant with the incoming digital message policy of the domain orsite. The MTA or other form of digital message sending system mayfurther set up monitoring rules that are periodically checked to see ifa condition with respect to digital message (e.g., e-mail) sent to givendomain or site has taken place. If the condition has taken place, suchas a number of connection time outs to the given domain or site or spamblocks from the given domain or site in a specific time period, then theprofile for the given domain or site is updated with an action, such asto defer further digital messages to the domain or site or to declarethe domain or site inactive. In this way, the MTA or other form ofdigital message sending system does not waste valuable resources sendingdigital messages to domains or sites that will reject the digitalmessages (e.g., e-mails). The MTA or other form of digital messagesending system uses the profiles to dynamically customize its digitalmessage sending for each domain so that the MTA or other form of digitalmessage sending system sends digital messages to such domains or sitesin compliance with any digital message policies imposed by such domainsor sites.

One aspect of the invention provides a digital message (e.g., e-mail)system that has a method for processing a plurality of digital messages(e.g., e-mail messages, text messages, etc.) that are being sent torecipients at a plurality of destination domains or sites. The methodcomprises establishing a plurality of profiles in the system. Eachprofile in the plurality of profiles is for handling digital messagesbound to a specific domain or set of domains in the plurality ofdestination domains (or a specific site or set of sites in a pluralityof destination sites). A request is received at the system to processfor transfer a plurality of outbound e-mail messages. Each digitalmessage specifies delivery to at least one recipient at a particulardomain or set of domains (and/or a particular site or set of sites). Asused herein, the term “site” can, for example, mean a specific uniformresource location (URL) a particular phone number, or any other form ofuniquely identifying electronic address. For each given digital message,processing of the given digital message is accomplished by determining adestination domain or site for the given digital message and thenreading a profile, in the plurality of profiles, for the determineddestination domain for the given digital message or for a set ofdestination domains that includes the determined destination domain forthe given digital message. Based on at least one parameter set in theprofile, the given digital message is sent to the determined destinationdomain (or site) in accordance with the profile when permitted by the atleast one parameter set in the profile. Alternatively, the given digitalmessage is held without sending the digital message to the determineddestination domain when required by the at least one parameter set inthe profile.

In some embodiments, the method further comprises receiving a messagenotification from the determined destination domain in response to thesending of the given digital message to the determined destinationdomain (or site) by the digital message system. Then, the profile forthe determined destination domain or for the set of destination domainsthat includes the determined destination domain is updated in responseto the message notification. In some embodiments, the messagenotification is a delivery failure notification indicating that thegiven digital was not delivered to the determined destination domain. Insuch instances, the updating step comprises updating the profile for thedetermined destination domain or for the set of destination domains thatincludes the determined destination domain to postpone delivery of anydigital from the digital system to the determined destination domain (orsite) or the set of destination domains (or set of sites) that includesthe determined destination domain for a period of time.

In some embodiments, the determined destination domain to which thedigital message is sent is an Internet Service Provider (ISP). In someembodiments, the method further comprise receiving automatically,without user intervention, a periodic report from the ISP regardingcompliance with a digital message delivery policy for the ISP. Thisreport establishes whether the digital message system complied with thedigital message delivery policy for the ISP during a period of timecovered by the periodic report. In such instances, the method furthercomprises modifying automatically, without user intervention, theprofile in the plurality of profiles corresponding to the ISP when thedigital message system has not complied with the digital messagedelivery policy for the ISP so that the digital message system will becompliant with the digital message delivery policy. In some embodiments,the periodic report comprises (i) an indication of a first number ofdigital messages the system attempted to send to the ISP during a periodof time encompassed by the periodic report and (ii) a number of digitalmessages in the first number of digital messages that were blocked bythe ISP during the period of time encompassed by the periodic report ora number of digital messages in the first number of digital messagesthat were successfully received by the ISP and forwarded to users of theISP during the period of time encompassed by the periodic report

In some embodiments, the digital delivery policy of the ISP comprises aquota on a number of digital messages and/or a maximum amount of datathat may be sent from the digital message system to the ISP during apredetermined period of time and the modifying step comprises updatingone or more parameters in the profile corresponding to the ISP so thatthe digital message system complies with the quota.

In some embodiments, the profile in the plurality of profilescorresponding to the determined destination domain comprises (i) aconnection time out period such that, when the digital message systemattempts to establish contact with the determined destination domain inorder to deliver a digital message and connection is not establishedwithin the connection time out period, the delivery of the digitalmessage is deemed to have failed, (ii) a maximum number of attemptsparameter that determines a number of times the digital message systemwill attempt to deliver a digital message to the determined destinationdomain before permanently aborting any attempt to deliver the digitalmessage to the determined destination domain, and (iii) a maximum numberof outgoing messages parameter that determines a number of digitalmessages the digital message system can deliver to the determineddestination domain in a given period of time such that, when the digitalmessage system has delivered the maximum number of outgoing messages tothe determined destination domain, the digital message system willdeliver no more digital messages to the determined destination domainuntil the period of time represented by the maximum number of outgoingmessages parameter has expired.

In some embodiments, the method further comprises automaticallyreceiving an update, without user intervention, of one or more profilesin the plurality of profiles from an external system. In someembodiments, the update alters one or more parameters in each of the oneor more profiles thereby affecting how the digital message system sendsdigital messages to the domain (or site) or the set of domains (or setof sites) associated with each of the one or more profiles and theupdate is generated by receiving digital message policy updates fromeach of the domains (or sites) or sets of domains (or sets of sites)associated with each of the one more profiles.

In some embodiments, the method further comprises monitoring digitalmessage sent to the determined destination to determine whether acondition is satisfied and, when the condition is satisfied, updatingthe profile for the determined destination, in the plurality ofprofiles, to include one or more actions corresponding to the condition.

In some instances, the condition is a number of time outs that occurredduring a predetermined evaluation interval and the action is arequirement that all digital messages bound for the determineddestination be deferred. In such instances, the monitoring stepcomprises evaluating, each time a period of time equal to thepredetermined evaluation interval has elapsed, a number of times duringthe latest predetermined evaluation interval that the digital messagesystem failed to deliver a digital message to the determined destinationdomain. When the number of times the digital message system failed todeliver a digital message to the determined destination domain exceeds amaximum allowable number of time outs, the profile for the determineddestination is updated to include a deferral requirement that specifiesthat all further digital messages from the digital message system to thedetermined destination domain be deferred. When the number of times thedigital message system failed to deliver a digital message to thedetermined destination domain does not exceed a maximum allowable numberof time outs and digital messages to the determined destination domainhas not been deferred during the latest predetermined evaluationinterval, the profile for the determined destination is not updated toinclude a deferral requirement that specifies that all further digitalmessages from the digital message system to the determined destinationdomain (or determined site) are to be deferred. In some embodiments,when a predetermined period of time has elapsed and the profile for thedetermined destination domain specifies that digital messages from thedigital message system to the determined destination domain (or site) isto be deferred, the method further comprises updating the profile forthe determined destination to remove the deferral requirement so thatthe digital message system can resume sending digital messages to thedetermined destination domain (or determined site).

In some embodiments, the condition is a number of spam blocknotifications sent from the determined destination domain to the digitalmessage system that occurred during a predetermined evaluation intervaland the action is an indication that the determined destination bedeemed dormant. In such instances, the monitoring step comprisesevaluating, each time a period of time equal to the predeterminedevaluation interval has elapsed, a number of times a spam blocknotification was received from the determined destination domain (orsite) during the latest predetermined evaluation interval indicatingthat a digital message sent to the determined destination domain wasspam. When the number of times a span block notification was receivedexceeds a maximum allowable number of span block notifications, theprofile for the determined destination is updated to include a dormantindication that specifies that all further digital messages from thedigital message system to the determined destination domain not be sent.

In some embodiments, the condition is message delivery failure rate of apredetermined evaluation interval and the action is a requirement thatall digital messages bound for the determined destination be deferred.In such instances, the monitoring step comprises evaluating, each time aperiod of time equal to the predetermined evaluation interval haselapsed, the message delivery failure rate during the latestpredetermined evaluation interval for digital messages sent to thedetermined destination domain (or site) by the digital message system.When the message delivery failure rate exceeds a maximum allowablemessage delivery failure rate, the profile for the determineddestination (or site) is updated to include a deferral requirement thatspecifies that all further digital messages from the digital messagesystem to the determined destination domain be deferred. When themessage delivery failure rate does not exceed the maximum allowablemessage delivery failure rate, and digital messages to the determineddestination domain has not been deferred during the latest predeterminedevaluation interval, the profile for the determined destination is notupdated to include a deferral requirement that specifies that allfurther digital messages from the digital message system to thedetermined destination domain be deferred. In some instances, when apredetermined period of time has elapsed and the profile for thedetermined destination domain (or site) specifies that digital messagesfrom the digital message system to the determined destination domain (orsite) is to be deferred, the method further comprises updating theprofile for the determined destination (or site) to remove the deferralrequirement so that the digital message system can resume sendingdigital messages to the determined destination domain (or site).

Another aspect of the present invention provides a computer programproduct for use in conjunction with a computer system. The computerprogram product comprises a computer readable storage medium and acomputer program mechanism embedded therein. The computer programmechanism is for processing a plurality of digital messages that arebeing sent to recipients at a plurality of destination domains. Thecomputer program mechanism comprises instructions for establishing aplurality of profiles, wherein each profile in the plurality of profilesis for handling digital messages to a specific domain or set of domainsin the plurality of destination domains. The computer program mechanismfurther comprises receiving a request to process for transfer aplurality of outbound digital messages, each digital message specifyingdelivery to at least one recipient at a particular domain or set ofdomains. The computer program mechanism further comprises, for eachgiven digital message, processing the given digital message bydetermining a destination domain for the given digital message andreading a profile, in the plurality of profiles, for the determineddestination domain for the given digital message or for a set ofdestination domains that includes the determined destination domain forthe given digital message. Based on at least one parameter set in theprofile the computer program mechanism either (i) sends the givendigital message to the determined destination domain in accordance withthe profile when permitted by the at least one parameter set in theprofile, or (ii) holds the given digital message without sending thedigital message to the determined destination domain when required bythe at least one parameter set in the profile.

In some embodiments, the computer program mechanism further comprisesinstructions for receiving a message notification from the determineddestination domain in response to the sending of the given digitalmessage to the determined destination domain by the digital messagesystem and updates the profile for the determined destination domain orfor the set of destination domains that includes the determineddestination domain in response to the message notification. In someembodiments, the message notification is a delivery failure notificationindicating that the given digital message was not delivered to thedetermined destination domain and the updating step comprises updatingthe profile for the determined destination domain or for the set ofdestination domains that includes the determined destination domain topostpone delivery of any digital message to the determined destinationdomain or the set of destination domains that includes the determineddestination domain for a period of time.

In some embodiments, the determined destination domain is an InternetService Provider (ISP). In some embodiments, the computer programmechanism further comprises instructions for receiving automatically,without user intervention, a periodic report from the ISP regardingcompliance with a digital message delivery policy for the ISP, where thereport establishes whether the computer program product complied withthe digital message delivery policy for the ISP during a period of timecovered by the periodic report. Then, the profile in the plurality ofprofiles corresponding to the ISP is modified automatically, withoutuser intervention, when the digital message system has not complied withthe digital message delivery policy for the ISP so that the computerprogram product will be compliant with the digital message deliverypolicy.

Another aspect of the present invention provides a computer system forprocessing a plurality of digital messages that are being sent torecipients at a plurality of destination domains. The computer systemcomprises a central processing unit and a memory, coupled to the centralprocessing unit. The memory comprises instructions for establishing aplurality of profiles, where each profile in the plurality of profilesis for handling digital message to a specific domain (or specific site)or set of domains (or set of specific sites) in the plurality ofdestination domains, and receiving a request to process for transfer aplurality of outbound digital messages, each digital message specifyingdelivery to at least one recipient at a particular domain or set ofdomains. For each given digital message, the memory comprisesinstructions for processing the given digital message by determining adestination domain for the given digital message and reading a profile,in the plurality of profiles, for the determined destination domain forthe given digital message or for a set of destination domains thatincludes the determined destination domain for the given digitalmessage. Based on at least one parameter set in the profile, the givendigital message is sent to the determined destination domain inaccordance with the profile when permitted by the at least one parameterset in the profile or the given digital message is held without sendingthe digital message to the determined destination domain when requiredby the at least one parameter set in the profile.

4. BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is the basic simple mail transfer protocol (SMTP) model inaccordance with the prior art.

FIG. 2 is the simple mail transfer protocol (SMTP) model with relay mailtransfer agents in accordance with the prior art.

FIG. 3 is a server for sending digital messages (e.g., message transferagent) in accordance with an embodiment with the present invention.

FIG. 4 is a flowchart that depicts processing steps that are taken toensure that digital messages sent by a digital message server (e.g.,message transfer agent) in accordance with the incoming digital messagerequirements of one or more receiving domains or sites.

Like reference numerals refer to corresponding parts throughout theseveral views of the drawings.

5. DETAILED DESCRIPTION

The present invention is directed to a digital message server (e.g., amail transfer agent (MTA)) (or plurality of servers) that keeps aprofile for each domain (or site) or set of domains (or set of sites) towhich the server (or plurality of servers) routinely sends digitalmessages such as e-mail. Each respective profile contains one or moreparameters that dictate the conditions under which digital messages canbe sent to the domain (or site) associated with the respective profile(e.g., number of e-mails per day, etc.). The digital message serverprovides digital message service using any available electronic meanssuch as, for example, SMTP, POP3, X.400, ESMTP or MHS protocol or alogical variant thereof (e.g., a program similar to or derived fromSMTP, POP3, X.400, ESMTP or MHS). For a general reference regardingdigital message protocols, see Hughes, 1998, Internet E-mail: Protocols,Standards, and Implementation, Artech House Publishers, which is herebyincorporated herein by reference herein in its entirety. Upon receipt ofthe digital messages, the digital message server determines destinationdomain (or site) for the digital message. The digital message serverthen reads the profile for the destination domain (or site) anddetermines what rules apply for sending the digital message (e.g.e-mail) to the destination domain (or site). If permitted by theprofile, the digital message server sends the digital message to thedestination domain. The digital message server further monitors progresssending digital message to destination domains (or destination sites).Periodically, the digital message server analyzes this progress todetermine if certain domain specific conditions are being satisfied asdefined in the domain specific (or site specific) profiles. In someembodiments, destination domains (or destination sites) periodicallysend reports (e.g., “report cards”) back to the digital message serverreporting on outcome of the digital message sent to such destinationdomains during a given period (e.g., how many digital messages weresent, how many digital messages were rejected, etc.). This informationis used to refine the parameters in the profiles for these destinationdomains (or destination sites).

FIG. 3 details an exemplary system that supports the functionalitydescribed above. The system is preferably a computer system 10 having:

-   -   a central processing unit 22;    -   a main non-volatile storage unit 14, for example, a hard disk        drive, for storing software and data, the storage unit 14        controlled by controller 12;    -   a system memory 36, preferably high speed random-access memory        (RAM), for storing system control programs, data, and        application programs, comprising programs and data loaded from        non-volatile storage unit 14; system memory 36 may also include        read-only memory (ROM);    -   a user interface 32, comprising one or more input devices (e.g.,        keyboard 28) and a display 26 or other output device;    -   a network interface card 20 or other communication circuitry for        connecting to any wired or wireless communication network 34        (e.g., the Internet or any other wide area network);    -   an internal bus 30 for interconnecting the aforementioned        elements of the system; and    -   a power source 24 to power the aforementioned elements.

Operation of computer 10 is controlled primarily by operating system 40,which is executed by central processing unit 22. Operating system 40 canbe stored in system memory 36. In addition to operating system 40, in atypical implementation, system memory 36 can include one or more of thefollowing:

-   -   file system 42 for controlling access to the various files and        data structures;    -   a digital message (e.g. transfer agent (MTA)) module 310 for        processing a plurality of digital (e.g., e-mail) messages that        are being sent to recipients at a plurality of destination        domains (or sites); and    -   a profile 46 for each receiving domain (or site) or set of        receiving domains (or set of sites) to which the MTA digital        message module 310 sends digital messages.

As illustrated in FIG. 3, computer 10 comprises software program modulesand data structures. The data structures stored in computer 10 include,for example, profiles 46 for each receiving domain or set of receivingdomains to which digital message module 310 sends digital messages. Eachof these data structures can comprise any form of data storageincluding, but not limited to, a flat ASCII or binary file, an Excelspreadsheet, a relational database (SQL), or an on-line analyticalprocessing (OLAP) database (MDX and/or variants thereof). In someembodiments, each of the profiles 46 are stored within a single datastructure. In other embodiments, such profile 46, in fact, comprise aplurality of data structures (e.g., databases, files, archives) that mayor may not all be hosted by computer 10. For example, in someembodiments, profiles 46 comprise a plurality of structured and/orunstructured data records that are stored either on computer 10 and/oron computers that are addressable by computer 10 across network/Internet34.

In some embodiments, the one or more profiles 46 are in a database thatis either stored on computer 10 or is distributed across one or morecomputers that are addressable by computer 10 by network/Internet 34.Thus, in some embodiments, one or more of such data structures is hostedby one or more remote computers (not shown). Such remote computers canbe located in a remote location or in the same room or the same buildingas computer 10. As such, any arrangement of the data structures andsoftware modules illustrated in FIG. 3 on one or more computers iswithin the scope of the present invention so long as these datastructures and software modules are addressable by computer 10 acrossnetwork/Internet 34 or by other electronic means. Moreover, othersystems, application modules and databases not shown in FIG. 3 can bestored in system memory 36. Thus, the present invention fullyencompasses a broad array of computer systems. Moreover, computer 10 mayin fact comprise a plurality of servers that are in electricalcommunication with each other and that each contain one or more of thesoftware modules and/or data structures illustrated in FIG. 3.

Each profile 46 includes one or more parameters 48 that dictate theincoming digital message policy of a particular domain (or site) or setof domains (or set of sites). In some embodiments, the domain or set ofdomains associated with a profile 46 is an Internet Service Provider.Examples of parameters that may be stored in the profile 46 for a givendomain include, but are not limited to:

-   -   a connection time out period such that, when digital message        module 310 attempts to establish contact with a destination        domain corresponding to the profile 46 in order to deliver a        digital message (e.g., an E-mail) and connection is not        established within the connection time out period, the delivery        of the digital message is deemed to have failed;    -   a maximum number of attempts parameter that determines a number        of times the digital message module 310 will attempt to deliver        a digital message to the destination domain (or destination        site) corresponding to the profile 46 before permanently        aborting any attempt to deliver the digital message to the        destination domain; and    -   a maximum number of outgoing messages parameter that determines        a number of digital messages the digital message module 310 can        deliver to the determined destination domain (or determined        destination site) in a given period of time (e.g., an hour, a        day, a week, a month) such that, when the digital message module        310 has delivered the maximum number of outgoing messages to the        destination domain (or site) corresponding to the profile 46,        the digital message module 310 will deliver no more digital        messages to the destination domain (or destination site) until        the period of time represented by the maximum number of outgoing        messages parameter has expired.        Additional examples of parameters include, but are not limited        to:    -   Action=DEFER        -   RetryUnverifiedMessages=ON        -   ConnectionTimeOut=30        -   ConnectionTimeOutData=300        -   MaxAttempts=3        -   DeferDNSFailures=ON        -   UseARecord=ON        -   MaxldleConnectionTimeout=25        -   MaxOutgoingMessagesPerMin=5

Now that an overview of a system in accordance with one embodiment ofthe present invention has been described, various advantageous methodsthat can be used in accordance with the present invention will now bedisclosed in conjunction with FIGS. 3 and 4. In particular, FIG. 4provides a general overview of a method 400 for sending digital messagesto intended recipients.

In step 410, a user creates a digital message. This digital message caninclude text, markup language (e.g., HTML, WML, BHTML, RDF/XML, RSS,MathML, XHTML, SVG, cXML or XML), or other scripts or objects. In step412, the user sends the digital message to digital message module 310.In step 414, digital message module 310 determines the destinationdomain of the digital message and identifies, based on this destinationdomain (or site), the profile 46 that corresponds to the destinationdomain (or site). In one example, the destination for the digitalmessage is foo@aol.com. In such an example, digital message module 310identifies the profile 46 for the domain aol.com. In some embodiments, aprofile 46 is actually a profile for a set of related domains (orrelated sites), not just a single domain. A digital message to any oneof the domains in the set of domains will cause the digital messagemodule 310 to use the profile that includes the particular destinationdomain.

In step 416, the digital message module 310 makes a determination as towhether digital messages are permitted to the destination domain (orsite). In some instances there is a dormant and/or delay parameter 48within the profile 46 for the destination domain that specifies that nodigital message is to be sent to the destination domain. In such a case(416—No) process control turns to step 418: the digital message is notsent or is differed in accordance with the instructions set forth in theprofile of the receiving domain. In another example, there is a maximumincoming messages per minute parameter 48 in the profile 46 of thereceiving domain. When such a parameter is encountered, the digitalmessage module 310 checks to ensure that this maximum has not beenexceeded. If it has (416—No), process control turns to step 418 and thedigital message is not sent to the destination domain. In typicalembodiments, if a digital message is not sent to the destination domain(steps 416—No, 418), then the digital message is returned to a messagequeue for later processing by the digital message module 310. In someembodiments, when the digital message module 310 has attempted to sendthe digital message a specific number of times (e.g. 3 times, 4 times,10 times, 100 times) and each time an attempt to the send the digitalmessage results in condition 416—No, the digital message is no longerreturned to the queue and the user is notified of the message failure.In some instances the digital message module 310 has several digitalmessage queues, one for each destination domain or set of destinationdomains.

If, in step 416, the profile 46 of the destination domain permitssending the digital message to the destination domain (step 416—Yes),than the digital message is sent in compliance with the one orparameters 48 of the digital message policy 46 of the destinationdomain.

Steps 418 and 420 effectively terminate a process for a given attempt toforward a digital message. The additional steps set forth in FIG. 4(steps 422 through 430) can be performed concurrently to theaforementioned steps (steps 410 through 420) or not at all. Steps 422through 430 will be described in further detail below. At this stage, adigital message module 310 for processing a plurality of digitalmessages that are being sent to recipients at a plurality of destinationdomains has been described. The method comprises establishing aplurality of profiles 46 (e.g., 10 or more profiles, 100 or moreprofiles, 1000 or more profiles, or 1×10⁶ or more profiles) in thesystem 10. Each profile in the plurality of profiles is for handlingdigital message to a specific domain (or site) or set of domains (or setof sites) in a plurality of destination domains. A request is receivedat the system to process for transfer a plurality of outbound e-mailmessages. This request may be a periodic request or it may simply be arequest from a single user agent to forward one or more digital messagesto one or more recipients. Each digital message specifies delivery to atleast one recipient at a particular domain or set of domains. For eachgiven digital message, processing of the given digital message isaccomplished by determining a destination domain for the given digitalmessage and then reading a profile 46, in the plurality of profiles, forthe determined destination domain for the given digital message or for aset of destination domains that includes the determined destinationdomain for the given digital message. Based on at least one parameterset in the profile, the given digital message is sent to the determineddestination domain in accordance with the profile when permitted by theat least one parameter set in the profile. Alternatively, the givendigital message is held without sending the digital message to thedetermined destination domain when required by the at least oneparameter set in the profile. For digital messages that include multipledestinations, steps 414 through 420 are run independently for eachpossible destination. That is, a profile 46 if read for each of themultiple domains and decisions (416—Yes or 416—No) are made for each ofthe multiple destination domains. The digital message is returned toqueue when the digital is not sent to any given destination domain.However, when returned to queue, destinations to which the digitalmessage was successfully sent are removed from the recipient list. Forexample, if the digital message was originally addressed to foo@aol.comfoo2@yahoo.com and was successfully sent to foo@aol.com but notfoo2@yahoo.com, the digital message is returned to queue with only thedestination foo2@yahoo.com.

In step 422, a determination is made as to whether a receiving domainhas provided any feedback. There is no requirement that step 422 occurafter steps 418 or 420 as depicted in FIG. 4. The depiction of step 422after steps 418 or 420 in FIG. 4 is merely to provide an illustration ofthe various aspects of the present invention in a logical and clearmanner so that the many advantages of the present invention may beunderstood. In practice, steps 422 and 424 can be a separate process orthread that runs independently on computer 10 apart from any of theother steps illustrated in FIG. 4. The feedback provided by thereceiving domain can be an electronic communication sent by a process onthe receiving domain. Alternatively, the feedback can be in the form ofmanual instructions provided by an operator of the receiving domain toan operator of the digital message module 310. In step 424, the profile46 for the receiving domain is updated based on the contents of thefeedback provided in step 422.

In one embodiment illustrative of steps 422 and 424, a periodic reportis received automatically, without user intervention, from a destinationdomain (e.g., an Internet Service Provider that uses the destinationdomain to receive incoming e-mail) regarding compliance with an e-maildelivery policy for the destination domain (e.g., the ISP), where thereport establishes whether the digital message module 310 has compliedwith the digital message delivery policy for the ISP during a period oftime covered by the periodic report. For example, the period of timecovered by the report may be one week and the report would thereforecover the compliance of the digital message module 310 with the incomingdigital message policy of the destination domain during the past week.In step 424 in accordance with this example, the profile for thedestination domain is modified automatically, without user intervention,to comply with the update. For instance, when the digital message module310 has not complied with the digital message delivery policy for thedestination domain (perhaps because the module 310 has sent too manydigital messages) so that the digital message module 310 will becompliant with the digital message delivery policy of the destinationdomain.

In one example, the periodic report comprises (i) an indication of afirst number of digital messages that the digital message module 310attempted to send to the destination domain (e.g. ISP) during a periodof time encompassed by the periodic report, (ii) a number of digitalmessages in the first number of digital messages that were blocked bythe destination domain during the period of time encompassed by theperiodic report or a number of digital messages in the first number ofdigital messages that were successfully received by the destinationdomain and forwarded to users of the destination domain during theperiod of time encompassed by the periodic report. If the block rate(failure rate) is deemed to be too high by the digital message module310, then the digital message module 310 may update a parameter 48 inthe profile 46 of the receiving domain to either put a hold on outgoingdigital messages for a period of time or to lower the limit of thenumber of digital messages that may be sent to the receiving domain in agiven time period.

There is no requirement that the feedback provided by the receivingdomain be sent on a periodic basis. In some instances, the feedback atstep 422 is provided from a receiving domain on a purely ad hoc basis(e.g., a single time, every once in a while, only when a serious digitalmessage transgression has taken place). The digital message module 310can use ad hoc feedback to modify the profile associated with areceiving domain when such ad hoc feedback is received.

Like steps 422 and 424, there is no requirement that steps 426 through430 be run after any of the foregoing steps. Indeed steps 426 through430 can be a separate thread or process that runs independently of anyother steps in FIG. 4. Moreover, there is no absolute requirement thatprocess control return to step 410 after any of these steps have beencompleted. The purpose of steps 426 through 430 is to provide monitoringrules to monitor progress in sending digital messages to one or moredestination domains. Indeed, at any given time there may be dozens orhundreds of monitoring processes each comprising steps 426 through 430concurrently running in an instance of the digital message module 310and each imposing a monitoring rule for a specific correspondingreceiving domain or set of receiving domains.

In step 426, a determination is made as to whether a predeterminedevaluation interval has transpired. If so (426—Yes), process controlpasses to step 428 where a condition specified in, for example theprofile 46 of a given destination domain is evaluated.

In one example, the condition is a number of time outs that occurredduring a predetermined evaluation interval and the action that isimposed in step 430 is a requirement that all digital messages bound fora determined destination be deferred. In this example, step 428 wouldcomprise evaluating, each time a period of time equal to thepredetermined evaluation interval has elapsed, a number of times duringthe latest predetermined evaluation interval that the digital messagemodule 310 failed to deliver a digital message to a correspondingdestination domain. In this example, when the number of times thedigital message module 310 failed to deliver a digital message to thespecific destination domain exceeds a maximum allowable number of timeouts, the profile 46 for the specific destination is updated to includea deferral requirement that specifies that all further digital messagesfrom the digital message module 310 to the specific destination domainbe deferred. Further, in this example, when the number of times thedigital message module 310 failed to deliver a digital message to thespecific destination domain does not exceed a maximum allowable numberof time outs and digital messages to the determined destination domainhave not been deferred during the latest predetermined evaluationinterval, the profile 46 for the specific destination is not updated toinclude a deferral requirement that specifies that all further digitalmessages from the digital message module 310 to the specific destinationdomain are to be deferred. In some instances, when a predeterminedperiod of time has elapsed and the profile 46 for the specificdestination domain specifies that digital messages from the digitalmessage module 310 to the specific destination domain is to be deferred,the method further comprises updating the profile 46 for the specificdestination domain to remove the deferral requirement so that thedigital message module 310 system can resume sending digital messages tothe specific destination domain.

In another example of steps 426 through 430, the condition is a numberof spam block notifications sent from the specific destination domain tothe digital message system that occurred during a predeterminedevaluation interval and the action is an indication that the specificdestination be deemed dormant. In such an example, step 428 comprisesevaluating, each time a period of time equal to the predeterminedevaluation interval has elapsed, a number of times a spam blocknotification was received from the determined destination domain duringthe latest predetermined evaluation interval indicating that a digitalmessage sent to the specific destination domain was spam. Further, instep 430 in accordance with this example, when the number of times aspan block notification was received exceeds a maximum allowable numberof span block notifications, the profile 46 for the specific destinationis updated to include a dormant indication that specifies that allfurther digital messages from the digital message module 310 to thespecific destination domain (or site) not be sent.

In yet another example of steps 426 through 430, the condition ismessage delivery failure rate of a predetermined evaluation interval andthe action is a requirement that all digital messages (e.g., e-mail)bound for the specific destination be deferred. A step 428 in accordancewith this example comprises evaluating, each time a period of time equalto the predetermined evaluation interval has elapsed, the messagedelivery failure rate during the latest predetermined evaluationinterval for digital messages sent to the specific destination domain bythe digital message module 310. Further, an illustration of step 430 inaccordance with this example requires that, when the message deliveryfailure rate exceeds a maximum allowable message delivery failure rate,the profile 46 for the determined destination be updated to include adeferral requirement that specifies that all further digital messagesfrom the digital message module 310 to the determined destination domainbe deferred and that when the message delivery failure rate does notexceed the maximum allowable message delivery failure rate, and digitalmessages to the specific (determined) destination domain has not beendeferred during the latest predetermined evaluation interval, theprofile 46 for the specific destination not be updated to include adeferral requirement that specifies that all further digital messagefrom the digital message module 310 to the specific destination domainbe deferred. In some instance, when a predetermined period of time haselapsed and the profile 46 for the specific destination domain specifiesthat digital messages from the digital message module 310 to thespecific destination domain is to be deferred, the method furthercomprises updating the profile 46 for the specific destination to removethe deferral requirement so that the digital message module 310 canresume sending digital messages to the specific destination domain.

As in the case of steps 422 and 424, there is no absolute requirementthat steps 426 through 430 occur periodically. A given condition (step428) can be evaluated on an ad hoc basis or just a single time.Additional examples of monitoring rules that may be evaluated are asfollows:

MonitorRule { EvaluationInterval=900 Condition=(/strongmail/ConnectionsTimedout > 100), Action=DEFER,ConnectionTimeout=60 Condition=(/strongmail/SpamBlocks > 10), State=DORMANT }

The first condition monitors the number of connections that timed outand if the count exceeds 100, imposes the set Action=DEFER in theprofile 46 for the domain and sets new connectionTimeout to 60.Similarly, the second condition checks whether there were more than tenspam blocks. If so, then it would mark the domain as dormant (not to beprocessed). In this example, these rules are evaluated every 900 seconds(15 minutes).

6. REFERENCES CITED

The present invention can be implemented as a computer program productthat comprises a computer program mechanism embedded in a computerreadable storage medium. For instance, the computer program productcould contain the program modules shown in FIG. 3 or a program thatembodies the flowchart illustrated in FIG. 4. These program modules canbe stored on a CD-ROM, DVD, magnetic disk storage product, or any othercomputer readable data or program storage product. The program modulescan also be embedded in permanent storage, such as ROM, one or moreprogrammable chip, or one or more application specific integratedcircuits (ASICs). Such permanent storage can be localized in a server,802.11 access point, 802.11 wireless bridge/station, repeater, router,mobile phone, or other electronic devices. The software modules in thecomputer program product can also be distributed electronically, via theInternet or otherwise, by transmission of a computer data signal (inwhich the software modules are embedded) either digitally or on acarrier wave.

Many modifications and variations of this invention can be made withoutdeparting from its spirit and scope, as will be apparent to thoseskilled in the art. The specific embodiments described herein areoffered by way of example only, and the invention is to be limited onlyby the terms of the appended claims, along with the full scope ofequivalents to which such claims are entitled.

1. A method of processing a digital message, comprising: on a digitalmessage system having one or more processors and memory storing one ormore programs for execution by the one or more processors: receiving arequest from a remote computer system to deliver an outbound digitalmessage to at least one recipient at a particular destination domain;determining the destination domain for the outbound digital message;reading a profile associated with the destination domain of the outbounddigital message, the profile comprising one or more parameters thatcorrespond to the incoming digital message policy of the destinationdomain, wherein at least one parameter in the profile is a quota on anumber of digital messages or a maximum amount of data that may be sentfrom the digital message system to the destination domain in a givenperiod of time; determining whether the quota is exceeded for thedestination domain prior to sending the outbound digital message to thedestination domain; and, (i) in accordance with a determination that thequota is not exceeded for the destination domain, sending the outbounddigital message to the destination domain in accordance with the profilewhen permitted by the at least one parameter in the profile, or (ii) inaccordance with a determination that the quota is exceeded for thedestination domain, holding the outbound digital message for a period oftime without sending the outbound digital message to the destinationdomain, wherein the digital message is not sent to the destinationdomain by the digital message system during a time when the quota isexceeded, and, subsequent to the period of time and during a time whenthe quota is not exceeded, resuming sending the held outbound digitalmessage to the destination domain.
 2. The method of claim 1, furthercomprising: receiving a message notification from the destination domainin response to the sending of the outbound digital message to thedestination domain by the digital message system; and updating theprofile for the destination domain in response to the messagenotification.
 3. The method of claim 2, wherein the message notificationis a delivery failure notification indicating that the outbound digitalmessage was not delivered to the destination domain and the updatingstep comprises: updating the profile associated with the destinationdomain to postpone delivery of any digital message from the digitalmessage system to the destination domain for a period of time.
 4. Themethod of claim 1, wherein the profile associated with the destinationdomain further comprises: a connection time out period such that, whenthe digital message system attempts to establish contact with thedestination domain in order to deliver a digital message and connectionis not established within the connection time out period, the deliveryof the digital message is deemed to have failed; and a maximum number ofattempts parameter that determines a number of times the digital messagesystem will attempt to deliver a digital message to the destinationdomain before permanently aborting any attempt to deliver the digitalmessage to the destination domain.
 5. The method of claim 1, the methodfurther comprising: automatically obtaining an update, without userintervention, to the profile associated with the destination domain froman external system.
 6. A digital message system, for processing adigital message, comprising: one or more processors; and memory storingone or more programs to be executed by the one or more processors; theone or more programs comprising instructions for: receiving a requestfrom a remote computer system to deliver an outbound digital message toat least one recipient at a particular destination domain; determiningthe destination domain for the outbound digital message; reading aprofile associated with the destination domain of the outbound digitalmessage, the profile comprising one or more parameters that correspondto the incoming digital message policy of the destination domain,wherein at least one parameter in the profile is a quota on a number ofdigital messages or a maximum amount of data that may be sent from thedigital message system to the destination domain in a given period oftime; determining whether the quota is exceeded for the destinationdomain prior to sending the outbound digital message to the destinationdomain; and, (i) in accordance with a determination that the quota isnot exceeded for the destination domain, sending the outbound digitalmessage to the destination domain in accordance with the profile, or(ii) in accordance with a determination that the quota is exceeded forthe destination domain, holding the outbound digital message for aperiod of time without sending the outbound digital message to thedestination domain, wherein the digital message is not sent to thedestination domain by the digital message system during a time when thequota is exceeded, and, subsequent to the period of time and during atime when the quota is not exceeded, resuming sending the held outbounddigital message to the destination domain.
 7. The digital message systemof claim 6, the one or more programs further comprising instructionsfor: receiving a message notification from the destination domain inresponse to the sending of the outbound digital message to thedestination domain by the digital message system; and updating theprofile for the destination domain in response to the messagenotification.
 8. The digital message system of claim 7, wherein themessage notification is a delivery failure notification indicating thatthe outbound digital message was not delivered to the destination domainand the updating step comprises: updating the profile associated withthe destination domain to postpone delivery of any digital message fromthe digital message system to the destination domain for a period oftime.
 9. The digital message system of claim 6, wherein the profileassociated with the destination domain further comprises: a connectiontime out period such that, when the digital message system attempts toestablish contact with the destination domain in order to deliver adigital message and connection is not established within the connectiontime out period, the delivery of the digital message is deemed to havefailed; and a maximum number of attempts parameter that determines anumber of times the digital message system will attempt to deliver adigital message to the destination domain before permanently abortingany attempt to deliver the digital message to the destination domain.10. A non-transitory computer readable storage medium storing one ormore programs configured for execution by a computer, the one or moreprograms comprising instructions for: receiving a request from a remotecomputer system to deliver an outbound digital message to at least onerecipient at a particular destination domain; determining thedestination domain for the outbound digital message; reading a profileassociated with the destination domain of the outbound digital message,the profile comprising one or more parameters that correspond to theincoming digital message policy of the destination domain, wherein atleast one parameter in the profile is a quota on a number of digitalmessages or a maximum amount of data that may be sent from the digitalmessage system to the destination domain in a given period of time;determining whether the quota is exceeded for the destination domainprior to sending the outbound digital message to the destination domain;and, (i) in accordance with a determination that the quota is notexceeded for the destination domain, sending the outbound digitalmessage to the destination domain in accordance with the profile whenpermitted by the at least one parameter in the profile, or (ii) inaccordance with a determination that the quota is exceeded for thedestination domain, holding the outbound digital message for a period oftime without sending the outbound digital message to the destinationdomain, wherein the digital message is not sent to the destinationdomain by the digital message system during a time when the quota isexceeded, and, subsequent to the period of time and during a time whenthe quota is not exceeded, resuming sending the held outbound message tothe destination domain.
 11. The non-transitory computer readable storagemedium of claim 10, the one or more programs further comprisinginstructions for: receiving a message notification from the destinationdomain in response to the sending of the outbound digital message to thedestination domain by the digital message system; and updating theprofile for the destination domain in response to the messagenotification.
 12. The non-transitory computer readable storage medium ofclaim 11, wherein the message notification is a delivery failurenotification indicating that the outbound digital message was notdelivered to the destination domain and the updating step comprises:updating the profile associated with the destination domain to postponedelivery of any digital message from the digital message system to thedestination domain for a period of time.
 13. The non-transitory computerreadable storage medium of claim 10, wherein the profile associated withthe destination domain further comprises: a connection time out periodsuch that, when the digital message system attempts to establish contactwith the destination domain in order to deliver a digital message andconnection is not established within the connection time out period, thedelivery of the digital message is deemed to have failed; and a maximumnumber of attempts parameter that determines a number of times thedigital message system will attempt to deliver a digital message to thedestination domain before permanently aborting any attempt to deliverthe digital message to the destination domain.
 14. The method of claim1, wherein the outbound digital message is an E-mail.
 15. The digitalmessage system of claim 6, wherein the outbound digital message is anE-mail.
 16. The non-transitory computer readable storage medium of claim10, wherein the outbound digital message is an E-mail.
 17. The method ofclaim 1, wherein the outbound digital message is a text message distinctform E-mail.
 18. The digital message system of claim 6, wherein theoutbound digital message is a text message.
 19. The non-transitorycomputer readable storage medium of claim 10, wherein the outbounddigital message is a text message.
 20. The method of claim 1, whereinthe sending the outbound digital message to the destination domain inaccordance with the profile when permitted by the at least one parameterin the profile is done in accordance with a SMTP based process.
 21. Amethod of processing a digital message, comprising: on a digital messagesystem having one or more processors and memory storing one or moreprograms for execution by the one or more processors: receiving arequest from a remote computer system to deliver an outbound digitalmessage to at least one recipient at a particular destination domain;determining the destination domain for the outbound digital message;reading a profile associated with the destination domain of the outbounddigital message, the profile comprising one or more parameters thatcorrespond to an incoming digital message policy of the destinationdomain, wherein at least one parameter in the profile is a quota on anumber of digital messages or a maximum amount of data that may be sentfrom the digital message system to the destination domain in a givenperiod of time; and, based on the at least one parameter in the profile:(i) sending the outbound digital message to the destination domain inaccordance with the profile when permitted by the at least one parameterin the profile, or (ii) holding the outbound digital message withoutsending the outbound digital message to the destination domain whenrequired by the at least one parameter in the profile, wherein thedigital message is not sent to the destination domain by the digitalmessage system during a time when the quota is exceeded.
 22. The methodof claim 21, wherein the incoming digital message policy is based onfeedback sent from the destination domain.
 23. A method of processing adigital message, comprising: on a digital message system having one ormore processors and memory storing one or more programs for execution bythe one or more processors: receiving a request from a remote computersystem to deliver an outbound digital message to at least one recipientat a particular destination domain; determining the destination domainfor the outbound digital message; reading a profile associated with thedestination domain of the outbound digital message, the profilecomprising one or more parameters that correspond to an incoming digitalmessage policy of the destination domain, wherein at least one parameterin the profile is a quota on a number of digital messages or a maximumamount of data that may be sent from the digital message system to thedestination domain in a given period of time; and, determining that thequota is exceeded for the destination domain prior to sending theoutbound digital message to the destination domain; in accordance with adetermination that the quota is exceeded for the destination domain,holding the outbound digital message for a period of time withoutsending the outbound digital message to the destination domain, whereinthe digital message is not sent to the destination domain by the digitalmessage system during a time when the quota is exceeded; subsequent tothe period of time, determining that the quota is not exceeded for thedestination domain; and, in accordance with a determination that thequota is not exceeded for the destination domain, sending the heldoutbound digital message to the destination domain in accordance withthe profile.
 24. The method of claim 23, including: in accordance withthe determination that the quota is exceeded for the destination domain,updating one or more parameters in the profile associated with thedestination domain to indicate that transmission of the digital messageto the destination domain should be deferred; and, in accordance withthe determination that the quota is not exceeded for the destinationdomain, updating the one or more parameters in the profile associatedwith the destination domain to indicate that transmission of the digitalmessage to the destination domain may resume.
 25. The method of claim 1,further comprising, in accordance with a determination that apredetermined evaluation integral has elapsed, evaluating whether acondition has been set, wherein the condition is set when: a number oftime outs exceeds a maximum allowable number of time outs during thepredetermined evaluation integral, a number of spam block notificationsexceeds a maximum allowable number of spam block notifications duringthe predetermined evaluation integral, or a message delivery failurerate exceeds a maximum allowable message delivery failure rate duringthe predetermined evaluation integral, wherein, when the condition isset, the outbound digital message is deferred irrespective of the quotadetermination.
 26. The method of claim 25, further comprising: updatingthe profile associated with the destination domain in accordance withthe evaluation of the condition.
 27. The digital message system of claim6, wherein the one or more programs further comprise instructions for,in accordance with a determination that a predetermined evaluationintegral has elapsed, evaluating whether a condition has been set,wherein the condition is set when: a number of time outs exceeds amaximum allowable number of time outs during the predeterminedevaluation integral, a number of spam block notifications exceeds amaximum allowable number of spam block notifications during thepredetermined evaluation integral, or a message delivery failure rateexceeds a maximum allowable message delivery failure rate during thepredetermined evaluation integral, wherein, when the condition is set,the outbound digital message is deferred irrespective of the quotadetermination.
 28. The non-transitory computer readable storage mediumof claim 10, the one or more programs further comprising instructionsfor, in accordance with a determination that a predetermined evaluationintegral has elapsed, evaluating whether a condition has been set,wherein the condition is set when: a number of time outs exceeds amaximum allowable number of time outs during the predeterminedevaluation integral, a number of spam block notifications exceeds amaximum allowable number of spam block notifications during thepredetermined evaluation integral, or a message delivery failure rateexceeds a maximum allowable message delivery failure rate during thepredetermined evaluation integral, wherein, when the condition is set,the outbound digital message is deferred irrespective of the quotadetermination.
 29. The method of claim 21, further comprising, inaccordance with a determination that a predetermined evaluation integralhas elapsed, evaluating whether a condition has been set, wherein thecondition is set when: a number of time outs exceeds a maximum allowablenumber of time outs during the predetermined evaluation integral, anumber of spam block notifications exceeds a maximum allowable number ofspam block notifications during the predetermined evaluation integral,or a message delivery failure rate exceeds a maximum allowable messagedelivery failure rate during the predetermined evaluation integral,wherein, when the condition is set, the outbound digital message isdeferred irrespective of the quota determination.